package com.vizhuo.client.business.match.goods.vo;

import java.io.Serializable;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import com.vizhuo.client.base.AbstractVo;
import com.vizhuo.client.business.match.goods.constant.addOrderConstant;
import com.vizhuo.client.util.ClientUtil;

/**
 * 
 * @ClassName: GoodsVo
 * @Description: 订单管理-货源信息(发布货源使用)
 * @author TANDP
 * @date 2015-7-9 下午1:56:12
 * 
 */
public class GoodsVo extends AbstractVo implements Serializable {

    /**
     * 主键(客户端不用传)
     */
    private Long id;

    /**
     * 发货人账号id
     */
    private Integer accountId;

    /**
     * 承运人id,精确找车页面使用,该参数不为null并且不为0说明是从精确找车页面连接过来的
     */
    private Integer carrierAccountId;

    /**
     * 发货人登录账号
     */
    private String account;

    /**
     * 发货人姓名
     */
    private String releaseName;

    /**
     * 发货人账号类型CLIENT_TYPE_LIST,1006,1:司机,2:发货人,3:信息部/物流公司
     */
    private String accountType;

    /**
     * 发布人联系电话
     */
    private String releaseTelphone;//

    /**
     * 货源id/要车信息id(客户端不用传)
     */
    private Long goodsId;

    /**
     * 货源编号,yyyyMMddxId (客户端不用传)
     */
    private String goodsNo;//

    /**
     * 状态(客户端不用传)
     */
    private String state;

    /**
     * 状态-文本
     */
    private String stateName;

    /**
     * 运输起点省编码
     */
    private String startProvice;//

    /**
     * 运输起点市编码
     */
    private String startCity;//

    /**
     * 运输起点区编码
     */
    private String startCounty;//

    /**
     * 运输起点详细地址（findGoodsDesc方法 这里地址只是 省市区，长途是这样存储的）
     */
    private String startAddress;//

    /**
     * 运输起始省市区名称
     */
    private String startAreaName;

    /**
     * 运输起点详细地址,由于详细地址startAddress被错误的用成了省市区，所以实际详细地址用startAddressDetail存储。
     */
    private String startAddressDetail;

    /**
     * 运输起点经度(客户端不用传)
     */
    private String startLng;//

    /**
     * 运输起点纬度(客户端不用传)
     */
    private String startLat;//

    /**
     * 运输终点省编码
     */
    private String endProvice;//

    /**
     * 运输终点市编码
     */
    private String endCity;//

    /**
     * 运输终点区编码
     */
    private String endCounty;//

    /**
     * 运输终点详细地址(findGoodsDesc方法 这里地址只是 省市区，长途是这样存储的。)
     */
    private String endAddress;//

    /**
     * 运输终点省市区名称
     */
    private String endAreaName;

    /**
     * 运输起点详细地址,由于详细地址endAddress被错误的用成了省市区，所以实际详细地址用endAddressDetail存储。
     */
    private String endAddressDetail;

    /**
     * 运输类型,1:干线,2:同城
     */
    private String runType;//

    /**
     * 运输终点经度(客户端不用传)
     */
    private String endLng;//

    /**
     * 运输终点纬度(客户端不用传)
     */
    private String endLat;//

    /**
     * 货物类型(现在已不用,只传吨，方，件)
     */
    @Deprecated
    private String goodsType;//

    /**
     * 货物类型
     */
    private String goodsSpecies;//

    /**
     * 货物类型-code
     */
    private String goodsTypeCode;//

    /**
     * 货物种类
     */
    private String goodsSpeciesName;

    /**
     * 货物重量(吨)
     */
    private double goodsLoad;//

    /**
     * 货物体积(方)
     */
    private double goodsSize;//

    /**
     * 货物件数(件)
     */
    private int goodsPiece;//

    /**
     * 需求车型
     */
    private String needCarType;//

    /**
     * 需求车长
     */
    private String needCarLength;//

    /**
     * 用车时间(格式已经自动处理，同城、长途两种格式)
     */
    private String needCarTime;//

    /**
     * 用车时间(同城,含时分秒)
     */
    @Deprecated
    private String needCarTimeSame;//

    /**
     * 下单时间
     */
    private String releaseTime;//

    /**
     * 用车需求文字描述
     */
    private String needDesc;//

    /**
     * 是否整车,1:是,0否,默认:否
     */
    private String isCarload;//

    /**
     * 是否仅通知车库中的司机,1:是,0否,默认否
     */
    private String isMycar;//

    /**
     * 货源摘要(客户端不用传)
     */
    private String goodsRemark;//

    /**
     * 用车需求语音描述url
     */
    private String needSoundUrl;//

    /**
     * 全程距离(米) 客户端不用传
     */
    private int distance;

    /**
     * 距你距离(米)
     */
    private int distanceYou;

    /**
     * 距司机距离(km)
     */
    private String distanceDriver;

    // extend
    /**
     * 承运人姓名
     */
    private String carrierName;

    /**
     * 承运人账号类型
     */
    private String carrierAccountType;

    /**
     * 收货人姓名
     */
    private String receiptName;

    /**
     * 收货人电话
     */
    private String receiptPhone;

    /**
     * 收货人地址
     */
    private String receiptAddress;

    /**
     * 成功推送数量
     */
    private int pushSuccessCount;

    /**
     * 创建时间
     */
    protected Date createDatetime;

    /**
     * 最后修改时间
     */
    protected Date lastModifyDatetime;

    /**
     * 发货端后来新增的发货的类型（长途和同城）
     */
    protected String distanceType;// 1是长途，2是同城

    /**
     * 承运人账号(用于同城去掉订单推送)
     */
    private String carrierAccount;

    /**
     * 取消订单原因(用于同城去掉订单推送)
     */
    private String deleteReason;

    /**
     * 发货商的店铺名称(用于同城去掉订单推送)
     */
    private String shopName;

    /**
     * 发货商的(用于同城去掉订单推送)
     */
    private String conLabel;

    /**
     * 同城取货时，判断是否可随时取货(0：按用车时间规则取货，1：随时可取)
     */
    private String takeFlag;

    /**
     * 货源图片路径
     */
    private String goodsPicPath;

    /**
     * 货源图片文件名字
     */
    private String goodsPicName;

    /**
     * 特殊需求
     */
    private String needOther;

    public String getTakeFlag() {
        return takeFlag;
    }

    public void setTakeFlag(String takeFlag) {
        this.takeFlag = takeFlag;
    }

    public String getDistanceDriver() {
        return distanceDriver;
    }

    public void setDistanceDriver(String distanceDriver) {
        this.distanceDriver = distanceDriver;
    }

    public String getNeedCarTimeSame() {
        return needCarTimeSame;
    }

    public void setNeedCarTimeSame(String needCarTimeSame) {
        this.needCarTimeSame = needCarTimeSame;
    }

    public String getConLabel() {
        return conLabel;
    }

    public void setConLabel(String conLabel) {
        this.conLabel = conLabel;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public String getDeleteReason() {
        return deleteReason;
    }

    public void setDeleteReason(String deleteReason) {
        this.deleteReason = deleteReason;
    }

    public String getCarrierAccount() {
        return carrierAccount;
    }

    public void setCarrierAccount(String carrierAccount) {
        this.carrierAccount = carrierAccount;
    }

    public String getDistanceType() {
        return distanceType;
    }

    public void setDistanceType(String distanceType) {
        this.distanceType = distanceType;
    }

    public int getPushSuccessCount() {
        return pushSuccessCount;
    }

    public void setPushSuccessCount(int pushSuccessCount) {
        this.pushSuccessCount = pushSuccessCount;
    }

    public String getReceiptAddress() {
        return receiptAddress;
    }

    public void setReceiptAddress(String receiptAddress) {
        this.receiptAddress = receiptAddress;
    }

    public int getGoodsPiece() {
        return goodsPiece;
    }

    public void setGoodsPiece(int goodsPiece) {
        this.goodsPiece = goodsPiece;
    }

    /**
     * 距你距离(米)
     * 
     * @return
     */
    public int getDistanceYou() {
        return distanceYou;
    }

    /**
     * 距你距离(米)
     * 
     * @param distanceYou
     */
    public void setDistanceYou(int distanceYou) {
        this.distanceYou = distanceYou;
    }

    public String getCarrierAccountType() {
        return carrierAccountType;
    }

    public void setCarrierAccountType(String carrierAccountType) {
        this.carrierAccountType = carrierAccountType;
    }

    /**
     * 开始详细地址
     * 
     * @return
     */
    public String getStartAddress() {
        return startAddress;
    }

    /**
     * 开始详细地址
     * 
     * @param startAddress
     */
    public void setStartAddress(String startAddress) {
        this.startAddress = startAddress;
    }

    /**
     * 运输起点经度(客户端不用传)
     * 
     * @return
     */
    public String getStartLng() {
        return startLng;
    }

    /**
     * 运输起点经度(客户端不用传)
     * 
     * @param startLng
     */
    public void setStartLng(String startLng) {
        this.startLng = startLng;
    }

    /**
     * 运输起点经纬度(客户端不用传)
     * 
     * @return
     */
    public String getStartLat() {
        return startLat;
    }

    /**
     * 运输起点纬度(客户端不用传)
     * 
     * @param startLat
     */
    public void setStartLat(String startLat) {
        this.startLat = startLat;
    }

    /**
     * 结束详细地址
     * 
     * @return
     */
    public String getEndAddress() {
        return endAddress;
    }

    /**
     * 结束详细地址
     * 
     * @param endAddress
     */
    public void setEndAddress(String endAddress) {
        this.endAddress = endAddress;
    }

    /**
     * 运输终点经度(客户端不用传)
     * 
     * @return
     */
    public String getEndLng() {
        return endLng;
    }

    /**
     * 运输终点经度(客户端不用传)
     * 
     * @param endLng
     */
    public void setEndLng(String endLng) {
        this.endLng = endLng;
    }

    /**
     * 运输终点纬度(客户端不用传)
     * 
     * @return
     */
    public String getEndLat() {
        return endLat;
    }

    /**
     * 运输终点纬度(客户端不用传)
     * 
     * @param endLat
     */
    public void setEndLat(String endLat) {
        this.endLat = endLat;
    }

    /**
     * 货物类型-code 9003
     * 
     * @return
     */
    public String getGoodsType() {
        return goodsType;
    }

    /**
     * 货物种类
     * 
     * @param goodsType
     */
    public void setGoodsType(String goodsType) {
        this.goodsType = goodsType;
    }

    /**
     * 货物重量
     * 
     * @return
     */
    public double getGoodsLoad() {
        return goodsLoad;
    }

    /**
     * 货物重量
     * 
     * @param goodsLoad
     */
    public void setGoodsLoad(double goodsLoad) {
        this.goodsLoad = goodsLoad;
    }

    /**
     * 货物体积
     * 
     * @return
     */
    public double getGoodsSize() {
        return goodsSize;
    }

    /**
     * 货物体积
     * 
     * @param goodsSize
     */
    public void setGoodsSize(double goodsSize) {
        this.goodsSize = goodsSize;
    }

    /**
     * 需要车型-code
     * 
     * @return
     */
    public String getNeedCarType() {
        return needCarType;
    }

    /**
     * 需要车型
     * 
     * @param needCarType
     */
    public void setNeedCarType(String needCarType) {
        this.needCarType = needCarType;
    }

    /**
     * 需要车长
     * 
     * @return
     */
    public String getNeedCarLength() {
        return needCarLength == null ? "0" : needCarLength;
    }

    /**
     * 需要车长
     * 
     * @return
     */
    public String getNeedCarLengthName() {
        if (needCarLength == null || needCarLength.equals("0")) {
            return "";
        } else {
            return needCarLength + "米";
        }
        // return needCarLength == null ? "0" : needCarLength + "米";
    }

    /**
     * 需要车长
     * 
     * @param needCarLength
     */
    public void setNeedCarLength(String needCarLength) {
        this.needCarLength = needCarLength;
    }

    /**
     * 用车时间
     * 
     * @return
     */
    public String getNeedCarTime() {

        if (needCarTime == null || needCarTime.equals("")) {
            return needCarTime;
        }

        // 格式化用车时间，长途订单显示年月日，同城显示年月日时分
        DateFormat dfTongCheng = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        DateFormat dfChangTu = new SimpleDateFormat("yyyy-MM-dd");
        try {
            // 同城
            if (this.getDistanceType() != null && this.getDistanceType().equals(addOrderConstant.TYPE_SAME_CITY)) {
                Date dateTongCheng = dfTongCheng.parse(needCarTime);
                return dfTongCheng.format(dateTongCheng);
            } else {
                Date dateChangTu = dfChangTu.parse(needCarTime);
                return dfChangTu.format(dateChangTu);
            }
        } catch (ParseException e) {
            e.printStackTrace();
            return "";
        }
    }

    /**
     * 用车时间：年月日时分秒（请不要再次方法中格式化时间，否则时间转换可能出问题）
     * 
     * @return
     */
    public String getNeedCarTimeAll() {
        return needCarTime;
    }

    /**
     * 用车时间
     * 
     * @param needCarTime
     */
    public void setNeedCarTime(String needCarTime) {
        this.needCarTime = needCarTime;
    }

    /**
     * 用车描述
     * 
     * @return
     */
    public String getNeedDesc() {
        return ClientUtil.str(needDesc);
    }

    /**
     * 用车描述
     * 
     * @param needDesc
     */
    public void setNeedDesc(String needDesc) {
        this.needDesc = needDesc;
    }

    /**
     * 是否整车,1:是,0否,默认:否
     * 
     * @return
     */
    public String getIsCarload() {
        return isCarload;
    }

    /**
     * 是否整车,1:是,0否,默认:否
     * 
     * @param isCarload
     */
    public void setIsCarload(String isCarload) {
        this.isCarload = isCarload;
    }

    /**
     * 是否仅通知车库中的司机,1:是,0否,默认否
     * 
     * @return
     */
    public String getIsMycar() {
        return isMycar;
    }

    /**
     * 是否仅通知车库中的司机,1:是,0否,默认否
     * 
     * @param isMycar
     */
    public void setIsMycar(String isMycar) {
        this.isMycar = isMycar;
    }

    /**
     * 货源id/要车信息id(客户端不用传)
     * 
     * @return
     */
    public Long getGoodsId() {
        return goodsId;
    }

    /**
     * 货源id/要车信息id(客户端不用传)
     * 
     * @param goodsId
     */
    public void setGoodsId(Long goodsId) {
        this.goodsId = goodsId;
    }

    /**
     * 起点省编码
     * 
     * @return
     */
    public String getStartProvice() {
        return startProvice;
    }

    /**
     * 起点省编码
     * 
     * @param startProvice
     */
    public void setStartProvice(String startProvice) {
        this.startProvice = startProvice;
    }

    /**
     * 起点市编码
     * 
     * @return
     */
    public String getStartCity() {
        return startCity;
    }

    /**
     * 起点市编码
     * 
     * @param startCity
     */
    public void setStartCity(String startCity) {
        this.startCity = startCity;
    }

    /**
     * 起点区县编码
     * 
     * @return
     */
    public String getStartCounty() {
        return startCounty;
    }

    /**
     * 起点区县编码
     * 
     * @param startCounty
     */
    public void setStartCounty(String startCounty) {
        this.startCounty = startCounty;
    }

    /**
     * 终点省编码
     * 
     * @return
     */
    public String getEndProvice() {
        return endProvice;
    }

    /**
     * 终点省编码
     * 
     * @param endProvice
     */
    public void setEndProvice(String endProvice) {
        this.endProvice = endProvice;
    }

    /**
     * 终点市编码
     * 
     * @return
     */
    public String getEndCity() {
        return endCity;
    }

    /**
     * 终点市编码
     * 
     * @param endCity
     */
    public void setEndCity(String endCity) {
        this.endCity = endCity;
    }

    /**
     * 终点区县编码
     * 
     * @return
     */
    public String getEndCounty() {
        return endCounty;
    }

    /**
     * 终点区县编码
     * 
     * @param endCounty
     */
    public void setEndCounty(String endCounty) {
        this.endCounty = endCounty;
    }

    /**
     * 发货人账号id
     * 
     * @return
     */
    public Integer getAccountId() {
        return accountId;
    }

    /**
     * 发货人账号id
     * 
     * @param accountId
     */
    public void setAccountId(Integer accountId) {
        this.accountId = accountId;
    }

    /**
     * 发布人联系电话
     * 
     * @return
     */
    public String getReleaseTelphone() {
        return releaseTelphone;
    }

    /**
     * 发布人联系电话
     * 
     * @param releaseTelphone
     */
    public void setReleaseTelphone(String releaseTelphone) {
        this.releaseTelphone = releaseTelphone;
    }

    /**
     * 货源编号,yyyyMMddxId (客户端不用传)
     * 
     * @return
     */
    public String getGoodsNo() {
        return goodsNo;
    }

    /**
     * 货源编号,yyyyMMddxId (客户端不用传)
     * 
     * @param goodsNo
     */
    public void setGoodsNo(String goodsNo) {
        this.goodsNo = goodsNo;
    }

    /**
     * 货源摘要(客户端不用传)
     * 
     * @return
     */
    public String getGoodsRemark() {
        return goodsRemark;
    }

    /**
     * 货源摘要(客户端不用传)
     * 
     * @param goodsRemark
     */
    public void setGoodsRemark(String goodsRemark) {
        this.goodsRemark = goodsRemark;
    }

    /**
     * 主键(客户端不用传)
     * 
     * @return
     */
    public Long getId() {
        return id;
    }

    /**
     * 主键(客户端不用传)
     * 
     * @param id
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 录音url(客户端不用传)
     * 
     * @return
     */
    public String getNeedSoundUrl() {
        return needSoundUrl;
    }

    /**
     * 录音url(客户端不用传)
     * 
     * @param needSoundUrl
     */
    public void setNeedSoundUrl(String needSoundUrl) {
        this.needSoundUrl = needSoundUrl;
    }

    /**
     * 全程距离(米) 客户端不用传
     * 
     * @return
     */
    public double getDistance() {
        return distance;
    }

    /**
     * 全程距离 客户端可以取这个,超过1000米,返回公里,小于1000米返回米
     * 
     * @return
     */
    public String getDistanceLabel() {
        if (distance > 1000) {
            return (distance / 1000) + "公里";
        } else {
            return distance + "米";
        }
    }

    /**
     * 距离你距离 客户端可以取这个,超过1000米,返回公里,小于1000米返回米
     * 
     * @return
     */
    public String getDistanceYouLabel() {
        if (distanceYou > 1000) {
            return ((float) distanceYou / 1000) + "公里";
        } else {
            return distanceYou + "米";
        }
    }

    /**
     * 全程距离(米) 客户端不用传
     * 
     * @param distance
     */
    public void setDistance(int distance) {
        this.distance = distance;
    }

    /**
     * 发货人账号类型CLIENT_TYPE_LIST,1006,1:司机,2:发货人,3:信息部/物流公司
     * 
     * @return
     */
    public String getAccountType() {
        return accountType;
    }

    /**
     * 发货人账号类型CLIENT_TYPE_LIST,1006,1:司机,2:发货人,3:信息部/物流公司
     * 
     * @param accountType
     */
    public void setAccountType(String accountType) {
        this.accountType = accountType;
    }

    /**
     * 运输类型(客户端不用传),1:干线,2:同城
     * 
     * @return
     */
    public String getRunType() {
        return runType;
    }

    /**
     * 运输类型(客户端不用传),1:干线,2:同城
     * 
     * @param runType
     */
    public void setRunType(String runType) {
        this.runType = runType;
    }

    public String getAccount() {
        return account;
    }

    /**
     * 客户端货物类型调用该方法:处理 重量和体积的问题
     * 
     * @return
     */
    public String getGoodsTypeLabel() {
        /*
         * String goodsTypeLabel = this.goodsSpeciesName == null ? "" :
         * this.goodsSpeciesName; String goodsLoadStr = ""; String goodsSizeStr
         * = ""; if (this.getGoodsLoad() == (int) this.getGoodsLoad()) {
         * goodsLoadStr = String.valueOf((int) this.getGoodsLoad()); } else {
         * goodsLoadStr = String.valueOf(this.getGoodsLoad()); } if
         * (this.getGoodsSize() == (int) this.getGoodsSize()) { goodsSizeStr =
         * String.valueOf((int) this.getGoodsSize()); } else { goodsSizeStr =
         * String.valueOf(this.getGoodsSize()); }
         * 
         * if ("1".equals(this.getGoodsTypeCode())) { goodsTypeLabel += " " +
         * goodsLoadStr + "吨"; } else { goodsTypeLabel += " " + goodsSizeStr +
         * "立方"; } return goodsTypeLabel;
         */

        String goodsSpeciesLabelStr = this.goodsSpeciesName == null ? "" : this.goodsSpeciesName;

        String goodsLoadStr = "";
        String goodsSizeStr = "";

        if (this.getGoodsLoad() == (int) this.getGoodsLoad()) {
            goodsLoadStr = String.valueOf((int) this.getGoodsLoad());
        } else {
            goodsLoadStr = String.valueOf(this.getGoodsLoad());
        }
        if (this.getGoodsSize() == (int) this.getGoodsSize()) {
            goodsSizeStr = String.valueOf((int) this.getGoodsSize());
        } else {
            goodsSizeStr = String.valueOf(this.getGoodsSize());
        }
        if (this.goodsLoad != 0.0) {
            goodsSpeciesLabelStr = goodsSpeciesLabelStr + " " + goodsLoadStr + "吨";
        }
        if (this.goodsSize != 0.0) {
            goodsSpeciesLabelStr = goodsSpeciesLabelStr + " " + goodsSizeStr + "立方";
        }
        if (this.goodsPiece != 0) {
            goodsSpeciesLabelStr = goodsSpeciesLabelStr + " " + (int) goodsPiece + "件";
        }
        return goodsSpeciesLabelStr;
    }

    /**
     * 重量/提交
     * 
     * @return
     */
    public String getGoodsLoadSizeLabel() {
        // String goodsTypeLabel = "";
        // String goodsLoadStr = "";
        // String goodsSizeStr = "";
        // if (this.getGoodsLoad() == (int) this.getGoodsLoad()) {
        // goodsLoadStr = String.valueOf((int) this.getGoodsLoad());
        // } else {
        // goodsLoadStr = String.valueOf(this.getGoodsLoad());
        // }
        // if (this.getGoodsSize() == (int) this.getGoodsSize()) {
        // goodsSizeStr = String.valueOf((int) this.getGoodsSize());
        // } else {
        // goodsSizeStr = String.valueOf(this.getGoodsSize());
        // }
        // if ("1".equals(this.getGoodsTypeCode())) {
        // goodsTypeLabel = goodsLoadStr + "吨";
        // } else {
        // goodsTypeLabel = goodsSizeStr + "立方";
        // }
        // return goodsTypeLabel;

        String goodsSpeciesLabelStr = "";

        String goodsLoadStr = "";
        String goodsSizeStr = "";

        if (this.getGoodsLoad() == (int) this.getGoodsLoad()) {
            goodsLoadStr = String.valueOf((int) this.getGoodsLoad());
        } else {
            goodsLoadStr = String.valueOf(this.getGoodsLoad());
        }
        if (this.getGoodsSize() == (int) this.getGoodsSize()) {
            goodsSizeStr = String.valueOf((int) this.getGoodsSize());
        } else {
            goodsSizeStr = String.valueOf(this.getGoodsSize());
        }
        if (this.goodsLoad != 0.0) {
            goodsSpeciesLabelStr = goodsSpeciesLabelStr + " " + goodsLoadStr + "吨";
        }
        if (this.goodsSize != 0.0) {
            goodsSpeciesLabelStr = goodsSpeciesLabelStr + " " + goodsSizeStr + "立方";
        }
        if (this.goodsPiece != 0) {
            goodsSpeciesLabelStr = goodsSpeciesLabelStr + " " + (int) goodsPiece + "件";
        }
        return goodsSpeciesLabelStr.trim();
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getGoodsTypeCode() {
        return goodsTypeCode;
    }

    public void setGoodsTypeCode(String goodsTypeCode) {
        this.goodsTypeCode = goodsTypeCode;
    }

    public String getReleaseTime() {
        if (releaseTime != null) {
            releaseTime = releaseTime.replace(".0", "");
        }
        return releaseTime;
    }

    public void setReleaseTime(String releaseTime) {
        this.releaseTime = releaseTime;
    }

    public String getGoodsSpecies() {
        return goodsSpecies;
    }

    public void setGoodsSpecies(String goodsSpecies) {
        this.goodsSpecies = goodsSpecies;
    }

    public Integer getCarrierAccountId() {
        return carrierAccountId;
    }

    public void setCarrierAccountId(Integer carrierAccountId) {
        this.carrierAccountId = carrierAccountId;
    }

    public String getReleaseName() {
        return releaseName;
    }

    public void setReleaseName(String releaseName) {
        this.releaseName = releaseName;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public String getGoodsSpeciesName() {
        return goodsSpeciesName;
    }

    public void setGoodsSpeciesName(String goodsSpeciesName) {
        this.goodsSpeciesName = goodsSpeciesName;
    }

    /**
     * 承运人姓名
     * 
     * @return
     */
    public String getCarrierName() {
        return ClientUtil.str(carrierName);
    }

    /**
     * 承运人姓名
     * 
     * @param carrierName
     */
    public void setCarrierName(String carrierName) {
        this.carrierName = carrierName;
    }

    /**
     * 收货人姓名
     * 
     * @return
     */
    public String getReceiptName() {
        return receiptName;
    }

    /**
     * 收货人姓名
     * 
     * @param receiptName
     */
    public void setReceiptName(String receiptName) {
        this.receiptName = receiptName;
    }

    /**
     * 收货人电话
     * 
     * @return
     */
    public String getReceiptPhone() {
        return receiptPhone;
    }

    /**
     * 收货人电话
     * 
     * @param receiptPhone
     */
    public void setReceiptPhone(String receiptPhone) {
        this.receiptPhone = receiptPhone;
    }

    public String getStateName() {
        return stateName;
    }

    public void setStateName(String stateName) {
        this.stateName = stateName;
    }

    public Date getCreateDatetime() {
        return createDatetime;
    }

    public void setCreateDatetime(Date createDatetime) {
        this.createDatetime = createDatetime;
    }

    public Date getLastModifyDatetime() {
        return lastModifyDatetime;
    }

    public void setLastModifyDatetime(Date lastModifyDatetime) {
        this.lastModifyDatetime = lastModifyDatetime;
    }

    public String getStartAreaName() {
        return startAreaName == null ? "" : startAreaName;
    }

    public void setStartAreaName(String startAreaName) {
        this.startAreaName = startAreaName;
    }

    public String getStartAddressDetail() {
        return startAddressDetail == null ? "" : startAddressDetail;
    }

    public void setStartAddressDetail(String startAddressDetail) {
        this.startAddressDetail = startAddressDetail;
    }

    public String getEndAreaName() {
        return endAreaName == null ? "" : endAreaName;
    }

    public void setEndAreaName(String endAreaName) {
        this.endAreaName = endAreaName;
    }

    public String getEndAddressDetail() {
        return endAddressDetail == null ? "" : endAddressDetail;
    }

    public void setEndAddressDetail(String endAddressDetail) {
        this.endAddressDetail = endAddressDetail;
    }

    public String getGoodsPicPath() {
        return goodsPicPath;
    }

    public void setGoodsPicPath(String goodsPicPath) {
        this.goodsPicPath = goodsPicPath;
    }

    public String getGoodsPicName() {
        return goodsPicName;
    }

    public void setGoodsPicName(String goodsPicName) {
        this.goodsPicName = goodsPicName;
    }

    public String getNeedOther() {
        return needOther == null ? "" : needOther;
    }

    public void setNeedOther(String needOther) {
        this.needOther = needOther;
    }

    @Override
    public String toString() {
        return "GoodsVo [id=" + id + ", accountId=" + accountId + ", carrierAccountId=" + carrierAccountId
                + ", account=" + account + ", releaseName=" + releaseName + ", accountType=" + accountType
                + ", releaseTelphone=" + releaseTelphone + ", goodsId=" + goodsId + ", goodsNo=" + goodsNo + ", state="
                + state + ", stateName=" + stateName + ", startProvice=" + startProvice + ", startCity=" + startCity
                + ", startCounty=" + startCounty + ", startAddress=" + startAddress + ", startAreaName="
                + startAreaName + ", startAddressDetail=" + startAddressDetail + ", startLng=" + startLng
                + ", startLat=" + startLat + ", endProvice=" + endProvice + ", endCity=" + endCity + ", endCounty="
                + endCounty + ", endAddress=" + endAddress + ", endAreaName=" + endAreaName + ", endAddressDetail="
                + endAddressDetail + ", runType=" + runType + ", endLng=" + endLng + ", endLat=" + endLat
                + ", goodsType=" + goodsType + ", goodsSpecies=" + goodsSpecies + ", goodsTypeCode=" + goodsTypeCode
                + ", goodsSpeciesName=" + goodsSpeciesName + ", goodsLoad=" + goodsLoad + ", goodsSize=" + goodsSize
                + ", goodsPiece=" + goodsPiece + ", needCarType=" + needCarType + ", needCarLength=" + needCarLength
                + ", needCarTime=" + needCarTime + ", needCarTimeSame=" + needCarTimeSame + ", releaseTime="
                + releaseTime + ", needDesc=" + needDesc + ", isCarload=" + isCarload + ", isMycar=" + isMycar
                + ", goodsRemark=" + goodsRemark + ", needSoundUrl=" + needSoundUrl + ", distance=" + distance
                + ", distanceYou=" + distanceYou + ", distanceDriver=" + distanceDriver + ", carrierName="
                + carrierName + ", carrierAccountType=" + carrierAccountType + ", receiptName=" + receiptName
                + ", receiptPhone=" + receiptPhone + ", receiptAddress=" + receiptAddress + ", pushSuccessCount="
                + pushSuccessCount + ", createDatetime=" + createDatetime + ", lastModifyDatetime="
                + lastModifyDatetime + ", distanceType=" + distanceType + ", carrierAccount=" + carrierAccount
                + ", deleteReason=" + deleteReason + ", shopName=" + shopName + ", conLabel=" + conLabel
                + ", takeFlag=" + takeFlag + ", goodsPicPath=" + goodsPicPath + ", goodsPicName=" + goodsPicName
                + ", needOther=" + needOther + "]";
    }

}
